/*
 * Copyright 2013-2019 Xia Jun(3979434@qq.com).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 ***************************************************************************************
 *                                                                                     *
 *                        Website : http://www.farsunset.com                           *
 *                                                                                     *
 ***************************************************************************************
 */
package com.workcell.workdata.im.model.request;

import com.workcell.workdata.im.annotation.CreateAction;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

@ApiModel
public class RoomAddRequest implements Serializable {
	private static final byte GROUP_VOICE = 10;
	private static final byte GROUP_VIDEO = 11;
	@Size(min = 1,message = "新加的成员数量应该大于1",groups = CreateAction.class)
	@ApiModelProperty("新加的成员信息")
	private Map<Long,String> newMember;

	@Size(min = 1,message = "当前的成员数量应该大于1",groups = CreateAction.class)
	@ApiModelProperty("当前的的成员信息")
	private Map<Long,String> member;

	@NotEmpty(message = "tag不能为空",groups = CreateAction.class)
	@ApiModelProperty("房间号")
	private String tag;

	@NotNull(message = "房间类型不能空",groups = CreateAction.class)
	@ApiModelProperty("房间类型")
	private Byte type;

	public String getTag() {
		return tag;
	}

	public void setTag(String tag) {
		this.tag = tag;
	}

	public Map<Long, String> getNewMember() {
		return newMember;
	}

	public Map<Long, String> getAllMember() {
		Map<Long,String> map = new HashMap<>();
		map.putAll(member);
		map.putAll(newMember);
		return map;
	}

	public void setNewMember(Map<Long, String> newMember) {
		this.newMember = newMember;
	}

	public Map<Long, String> getMember() {
		return member;
	}

	public void setMember(Map<Long, String> member) {
		this.member = member;
	}

	public Byte getType() {
		return type;
	}

	public void setType(Byte type) {
		this.type = type;
	}

	public boolean isVideoMode(){
		return type == GROUP_VIDEO;
	}
}
